home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_300 / 337_01 / l_chip.c < prev    next >
C/C++ Source or Header  |  1991-01-12  |  2KB  |  65 lines

  1. /* Copyright (c) James L. Pinson 1990,1991  */
  2.  
  3. /**********************   L_CHIP.C   ***************************/
  4.  
  5. #include "mydef.h"
  6.  
  7.  
  8. /*****************************************************************
  9.  
  10.  Usage: void chip_left(char *chip,char *block,int number);
  11.  
  12.   char *chip  = string to receive characters.
  13.   char *block = string to lose characters.
  14.   int  number = number of characters to move.
  15.  
  16.   Takes a "chip of the old block", removing characters from the
  17.   left side of "block" and placing them in "chip".
  18.  
  19.   Example: block= "this is a test"
  20.            chip= ""
  21.            chip_left(&chip,&block,4);
  22.  
  23.            results: chip=  "this"
  24.            block= " is a test"
  25. *****************************************************************/
  26.  
  27. void chip_left(char *chip,char *block,int number)
  28. {
  29. char temp[MAX_STRING];
  30.  
  31. strcpy(chip,"\0");
  32.  if (number <1 ) return;  /* nothing to chip */
  33.  /* are we trying to chip too much off block? */
  34.  if (number > strlen(block)) number=strlen(block);  
  35.  strcpy (temp,block);
  36.  copy (block,chip,0,number);
  37.  copy(block,temp,number,strlen(block)-number);
  38.  strcpy (block,temp);
  39.  return;
  40. }
  41.  
  42.  
  43. /*****************************************************************
  44.  
  45.  Usage: void chip_right(char *chip,char *block,int number);
  46.  
  47.   char *chip  = string to receive characters.
  48.   char *block = string to lose characters.
  49.   int  number = number of characters to move.
  50.  
  51.   Works just like chip_left() but moves characters from the
  52.   right side.
  53.  
  54. *****************************************************************/
  55.  
  56. void chip_right(char *chip,char *block, int number)
  57. {
  58. char temp[MAX_STRING];
  59. strcpy(chip,"\n");
  60. if (number <1 || number >strlen(block))return;
  61. copy(block,chip,strlen(block)-number,number);
  62. copy (block,block,0,strlen(block)-number);
  63. return;
  64. }
  65.